/*
Date:20210502 15:12PM
key:O(n)返回众数,通过分段假定众数计数投票。
    一开始也想到不同的元素删去不影响众数结果，但是如何找不同是个麻烦，如果采取同时删去的话要遍历很多次到对应位置。
    通过投票计数是最好的，因为无非两种状态，是 或 不是 众数，而暂时的众数也会让投票归于0

Date:20210502 15:12PM
key:复写，没看答案，很快就做出来了。
*/
class Solution {
public:
    int majorityElement(vector<int>& nums) 
    {
        int tmp=nums[0];//候选人元素
        int vo=1;//票数
        for(int i=1;i<nums.size();i++)
        {
            if(vo==0)
            {
                tmp=nums[i];
                vo=1;
                continue;
            }
            if(nums[i]==tmp)
            {
                vo++;
            }
            else
            {
                vo--;
            }
        }
        return tmp;
    }
};